<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>03 声明提前</title>
</head>

<body>

</body>
<script>

    /* 
        两种声明式的区别：
            * 声明式
            * 赋值式
        区别：
            * 声明式：函数的入口可以写在页面的任意位置，都可以调用函数体
            * 赋值式：函数的入口必须写在函数体的下方，先声明后调用，否则报错
        知识点：声明提前
            * 函数和变量都会声明提前
    */

    // sum(); // Uncaught TypeError: sum is not a function
    show();

    // 声明式
    function show() { // 函数的声明提前：系统在文件加载的时候，已经在内存中声明好该函数（预加载）
        console.log('声明式');
    }

    // 赋值式
    var sum = function () {
        console.log('赋值式' + 5 * 6);
    }

    show();
    sum();

    console.log(num); // undefined:声明未赋值，变量会声明提前(面试题)
    var num = 8;
    console.log(num);

</script>

</html>